//https://www.luogu.com.cn/problem/P2186
#include<cstdint>
#include<iostream>
#include<vector>
#include<stack>

// AC
// 编程语言C++17 O2
// 代码长度2.52KB
// 用时20ms
// 内存636.00KB

constexpr uint32_t strhash(char* i){
	return i[1]*7+i[2]*3+i[0];
}

enum opcode:uint32_t{
	NUM=strhash("NUM"),
	POP=strhash("POP"),
	INV=strhash("INV"),
	DUP=strhash("DUP"),
	SWP=strhash("SWP"),
	ADD=strhash("ADD"),
	SUB=strhash("SUB"),
	MUL=strhash("MUL"),
	DIV=strhash("DIV"),
	MOD=strhash("MOD"),
	END=strhash("END"),
};
struct Instruction{
	uint32_t op;
	int val;
};

const int LIMIT=1000000000,ERRORCODE=LIMIT+1;
int process(const std::vector<Instruction>& ins_set,int init){
	std::stack<int> st;int a,b;
//检查结果是不是超出界限了
//这个宏就很方便
#define test(Val) if(abs(Val)>LIMIT){return ERRORCODE;}
	//获取栈中的两个元素,并去除最上面的一个
	const auto c2d1=[&st,&a,&b](){
		if(st.size()<2) { return ERRORCODE; }
		a = st.top();
		st.pop();
		b = st.top();
		return 0;
	};
	test(init);
	st.push(init);
	for(Instruction ins:ins_set){
		switch(ins.op){
			case NUM:st.push(ins.val);break;
			case POP:{
				if(st.empty()){return ERRORCODE;}
				st.pop();break;
			}
			case INV:st.top()=-st.top();break;
			case DUP:st.push(st.top());break;
			case SWP:{
				if(c2d1()!=0){return ERRORCODE;}
				st.top()=a;
				st.push(b);
				break;
			}
			case ADD:{
				if(c2d1()!=0){return ERRORCODE;}
				int res=a+b;
				test(res);
				st.top()=res;
				break;
			}
			case SUB:{
				if(c2d1()!=0){return ERRORCODE;}
				int res=b-a;
				test(res);
				st.top()=res;
				break;
			}
			case MUL:{
				if(c2d1()!=0){return ERRORCODE;}
				int res=a*b;
				test(res);
				st.top()=res;
				break;
			}
			case DIV:{
				if(c2d1()!=0){return ERRORCODE;}
				if(a==0){return ERRORCODE;}
				int res=b/a;
				test(res);
				st.top()=res;
				break;
			}
			case MOD:{
				if(c2d1()!=0){return ERRORCODE;}
				if(a==0){return ERRORCODE;}
				int res=b%a;
				test(res);
				st.top()=res;
				break;
			}
		}
	}
	if(st.size()!=1){return ERRORCODE;}
	return st.top();
#undef test
}


int main(){
	using namespace std;
	char opcode[4];
	vector<Instruction> ins;
	while(1){
		int num;
		cin>>opcode;
		if(opcode[0]=='E'){break;}
		Instruction tempins;
		tempins.op=strhash(opcode);
		if(tempins.op==NUM){
			cin>>num;
			tempins.val=num;
		}
		ins.push_back(tempins);
	}
	int N ;
	cin>>N;
	for(int seq=0;seq<N;++seq){
		int x;
		cin>>x;
		int res=process(ins,x);
		if(res==ERRORCODE){
			cout<<"ERROR\n";
		}
		else{cout<<res<<'\n';}
	}
}